package com.hdl.design.pattern.proxy;

/**
 * 类名 Proxy
 * 描述 保存一个引用使得代理可以访问实体，并提供一个与Subject接口相同的接口，这样代理就可以用来代替实体
 *
 * @author hedonglin
 * @version 1.0
 * @date 2019/9/25 10:40
 */
public class Proxy extends AbstractSubject {
    /**
     * 真实对象
     */
    private RealSubject realSubject;

    @Override
    public void request() {
        if (realSubject == null){
            realSubject = new RealSubject();
        }
        System.out.println("代理请求开始");
        // 这里调用真实的对象请求
        realSubject.request();
        System.out.println("代理请求结束");
    }
}
